<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <script src="./js/vue.js"></script>
  </head>

  <body>
    <div id="root">
      <input type="text" placeholder="请输入" v-model="keyWord" />
      <button @click="sortType = 1">升序</button @#click="0">
      <button @click="sortType = 2">降序</button @#click="0">
      <button @click="sortType = 0">原顺序</button @#click="0">
      <ul>
        <li v-for="person in filPersons" :key="person.id">
          {{person.name}}-{{person.age}}-{{person.sex}}
        </li>
      </ul>
    </div>

    <script>
      //创建Vue实例,得到 ViewModel
      const vm = new Vue({
        el: '#root',
        data: {
          sortType:0,
          keyWord: '',
          persons: [
            { id: '001', name: '马冬梅', age: 29, sex: '女' }, 
            { id: '002', name: '周冬雨', age: 19, sex: '女' },
            { id: '003', name: '周杰伦', age: 20, sex: '男' },
            { id: '004', name: '温兆伦', age: 16, sex: '男' },
          ],
        },
        methods: {},
        computed: {
          filPersons() {
            const arr =  this.persons.filter((person) => {
              return person.name.indexOf(this.keyWord) !== -1
            })
            //p1-p2升序    p2-p1降序
            if (this.sortType) {
              arr.sort((p1,p2) => {
              return this.sortType === 1 ? p1.age-p2.age : p2.age-p1.age
            })
            }
           return arr
          },
        },
      })
    </script>
  </body>
</html>
